package com.cy.pj.sys.dao;

import com.cy.pj.sys.entity.SysRole;
import com.cy.pj.sys.entity.SysRoleMenuVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface SysRoleDao {
    /**
     * 获取角色的总记录数
     * @param name 角色名称
     * @return
     */
    int getRowCount(@Param("name") String name);

    /**
     * 分页获取角色的记录
     * @param name
     * @param startIndex
     * @param pageSize
     * @return
     */
    List<SysRole> findPageObjects(@Param("name") String name,
                                  @Param("startIndex") Integer startIndex,
                                  @Param("pageSize") Integer pageSize);

    /**
     * 根据角色ID删除角色信息
     * @param id 角色ID
     * @return 删除的行数
     */
    int deleteObject(Integer id);

    /**
     * 新增角色
     * @return
     */
    int insertObject(SysRole entity);

    /**
     * 根据角色ID获取角色和角色的权限信息
     * @param id
     * @return
     */
    SysRoleMenuVo findObjectById(Integer id);

    /**
     * 更新角色信息
     * @param entity
     * @return
     */
    int updateObject(SysRole entity);

    List<SysRole> findRoles();
}
